package com.system.boot.rbac.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.system.api.rbac.entity.bo.MakeCompanyBo;
import com.system.api.rbac.entity.po.SysPermission;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface PermissionMapper extends BaseMapper<SysPermission> {

    /**
     * 判断字段是否已存在
     * @param companyId 企业ID
     * @param variable 判断字段实体
     * @param param 被判断字段参数
     * @return boolean
     */
    @Select("SELECT EXISTS(SELECT 1 FROM sys_permission " +
            "WHERE company_id=#{companyId} AND #{variable}=#{param})")
    boolean getExists(Long companyId,String variable,String param);


    /**
     * 企业-权限组合数据列表
     * @return 企业-权限组合数据列表
     */
    List<MakeCompanyBo> selectPermCompany();

    /**
     * 根据角色查询权限列表
     * @param roleCodes 角色集
     * @return 权限列表
     */
    List<SysPermission> selectPermByRoles(@Param("companyId") Long companyId,@Param("roleCodes") List<String> roleCodes);
    List<SysPermission> selectPermByRoles(@Param("roleCodes") List<String> roleCodes);


    /**
     * 批量删除(物理)
     * @param ids ids集 | [1,2,3,4,5]
     * @return int
     */
    int deleteBatch(@Param("ids") List<Long> ids);
}